#include<iostream>
#include<vector>
using namespace std;

//int main()
//{
//	vector<int> v{ 0,1,0,3,12 };
//	int cur = 0, dest = -1;
//	while (cur < v.size())
//	{
//		if (v[cur] != 0)
//		{
//			dest++;
//			swap(v[dest], v[cur]);
//		}
//
//		cur++;
//	}
//
//
//	return 0;
//}
//
//int main()
//{
//	vector<int> v{ 0,0,0,0,0,0,0 };
//	int cur = 0, dest = -1;
//	while (dest < (int)v.size())
//	{
//		if (v[cur] != 0)
//		{
//			++dest;
//		}
//		else
//		{
//			dest += 2;
//		}
//		if (dest < v.size() - 1)
//		{
//			cur++;
//		}
//		else
//			break;
//	}
//	//dest = v.size() - 1;
//	while (cur >= 0)
//	{
//		if (dest >= v.size())
//		{
//			dest = v.size() - 1;
//			v[dest] = 0;
//			--dest;
//			--cur;
//		}
//		else
//		{
//			if (v[cur] == 0)
//			{
//				v[dest] = 0;
//				v[--dest] = 0;
//				--dest;
//				--cur;
//			}
//			else
//			{
//				v[dest] = v[cur];
//				--dest;
//				--cur;
//			}
//		}
//	}
//
//	return 0;
//}
int func(int n)
{
	int tmp = n;
	int ans = 0;
	int count = 0;
	while (n != 0)
	{
		n /= 10;
		count++;
	}
	while (count--)
	{
		ans += pow(tmp % 10, 2);
		tmp /= 10;
	}
	return ans;
}

//int main()
//{
//	int n;
//	cin >> n;
//	int slow = func(n);
//	int fast = func(slow);
//	
//	while (slow != fast)
//	{
//		int flag = 2;
//		slow = func(slow);
//		while (flag--)
//			fast = func(fast);
//	}
//	
//
//	return 0;
//}

int main()
{
	vector<int> v{ 1,8,6,2,5,4,8,3,7 };
	int left = 0, right = v.size() - 1;
	int max = 0;
	while (left != right)
	{
		int small;
		if (v[left] < v[right])
		{
			small = v[left];
		}
		else
		{
			small = v[right];
		}
		if ((right - left) * small > max)
			max = (right - left) * small;
		if (small == v[left])
			left++;
		else
			right--;
	}

	return 0;
}